home *** CD-ROM | disk | FTP | other *** search
- 2 'WS-DOS. BAS
- 8 '
- 10 DEFINT A-Z:ON ERROR GOTO 9000
- 15 A=0:A$="":L$="":P=0 'optimize key variable
- 20 CRLF$=CHR$(13)+CHR$(10):HBLF$=CHR$(141)+CHR$(10)'HARD & SOFT CR/LF
- 25 SP$=CHR$(32):TB$=CHR$(9)'SPACE & TAB
- 30 SH$=CHR$(31):PB$=CHR$(1)+CHR$(32)+CHR$(2) 'SOFT HYPHEN & PLACEBO
- 35 DT=19:DIM D$(19): FOR P=1 TO DT:READ D$(P):NEXT'READ DOT COMMAND
- 40 EN=4:DIM EN(4), ENO$(4),ENC$(4),MRK(4)'DIM $ READ ENHANCEMENT SYMBOLS
- 45 FOR P=1 TO EN:READ EN(P),ENO$(P),ENC$(P):MRK(P)=0:NEXT
- 100 KEY OFF:CLS
- 105 PRINT" =====CONVERT=====
- 110 PRINT
- 115 PRINT" 1 - DOS TO WS
- 120 PRINT" 2 - WS TO DOS
- 900 PRINT" X - EXIT
- 905 PRINT
- 910 LOCATE ,10:PRINT"CHOOSE:";
- 915 INPUT"",Q$:IF Q$="X" OR Q$="x" THEN SYSTEM
- 920 ON VAL(Q$) GOTO 1000,2000
- 925 BEEP:GOTO 100
- 930 '
- 1000 CLS
- 1005 PRINT" ======DOS TO WORDSTAR CONVERTER====="
- 1010 PRINT
- 1015 PRINT"This routine will convert a standard DOS file into the format
- 1020 PRINT" required by Wordstar to paragraph reforming by conveting
- 1025 PRINT" 'hard' carriage returns into 'soft' CRs
- 1030 PRINT"If the file contains blank lines between paragraphs or indented
- 1035 PRINT" PARAGRAPGHS, HARD RETURNS WILL BE PRESERVED AR EACH PARAGRAPH END.
- 1040 PRINT
- 1045 GOSUB 8000:IF FL$="" THEN 100
- 1050 PRINT:PRINT"CONVERSION IN PROGRESS...";
- 1055 IF EOF(1) THEN 8045 ELSE LINE INPUT #1,L$
- 1060 IF EOF(1) THEN PRINT #2,L$+CRLF$;:GOTO 8045
- 1065 LINE INPUT #1,A$
- 1070 IF A$="" THEN 1090 'TEST FOR BLANK LINE
- 1075 IF LEFT$(A$,2)=SP$+SP$ THEN 1090 'TEST FOR INDENT
- 1080 IF LEFT$(A$,1)=TB$ THEN 1090 'ALSO TEST FOR TAB
- 1085 PRINT #2,L$+HBLF$;:L$=A$:GOTO 1060 'WRITE LINE WITH SOFT CR
- 1090 PRINT #2,L$+CRLF$;:L$=A$:PRINT PB$;:GOTO 1060 'WRITE LINE AND HARD CR
- 1095 '
- 2000 CLS
- 2005 PRINT" =======WORDSTAR TO DOS CONVERTER====
- 2010 PRINT
- 2015 PRINT" THIS ROUTINE CONVERTS A WORDTAR 'DOCUMENT' FILE
- 2020 PRINT" INTO STANDARD DOS FORMAT. ALL 'HIGH-BIT' CHARACTERS
- 2025 PRINT" ARE CONVERTED TO THEIR 'LOW-BIT' EQUIVALENTS
- 2030 PRINT"ALL 'SOFT' HYPHENS ARE STRIPPED, EXCEPT THAT ANY HYPHENS
- 2035 PRINT" AT THE ENDS OF LINES ARE RETAINED.
- 2040 PRINT
- 2045 PRINT" YOU CAN EITHER STRIP OR RETAIN LINES THAT CONTAIN DOT COMMANDS.
- 2050 PRINT" AS ANOTHER OPTION, YOU CAN EITHER STRIP ALL PRINT ENHANCEMENTS
- 2055 PRINT" OR REPLACE CERTAIN ENHANCEMENT CODES AS FOLLOWS
- 2060 PRINT
- 2065 PRINT" UNDERLINE (^S) BECOMES << ... >>
- 2070 PRINT" BOLDFACE (^B) BECOMES <<< ... >>>
- 2075 PRINT" SUPERSCRIPT (^T) BECOMES <^...^>
- 2080 PRINT" SUBSCRIPT (^V) BECOMES <_ ..._>
- 2085 PRINT
- 2090 PRINT:INPUT"STRIP OR RETAIN DOT COMMANDS (s/r):",Q$
- 2095 IF Q$="S" OR Q$="s" THEN STRIPDOT=-1 ELSE STRIPDOT=0
- 2100 INPUT"STRIP OR REPLACE PRINT ENHANCEMENTS (s/r):",Q$
- 2105 IF Q$="R" OR Q$="r" THEN ENHANCE=-1 ELSE ENHANCE=0
- 2110 GOSUB 8000: IF FL$="" THEN 100
- 2115 PRINT:PRINT"CONVERSION IN PROGRESS";
- 2120 L$=""
- 2125 IF EOF(1) THEN 8045 ELSE A$=INPUT$(1,#1):A=ASC(A$):IF A>30 AND A<128 THEN L$=L$+A$:GOTO 2125 'SOFT HYPHEN OR NORMAL ASCII,PROCEED
- 2130 IF A>127 THEN A=A-128:A$=CHR$(A) 'CONVERT TO LOW-BIT CHARACTER
- 2135 IF A>31 THEN L$=L$+A$:GOTO 2125 'NOW IF NORMAL ASCII, PROCEED
- 2140 IF A=13 THEN GOSUB 2170:A$=INPUT$(1,#1):GOTO 2120'EOL,PROCESS & REMOVE LF
- 2145 IF NOT ENHANCE THEN 2125
- 2150 'DEAL WITH ENHANCEMENTS
- 2155 FOR P=1 TO EN:IF A<>EN(P) THEN 2165 'FIND SPECIAL CHARACTERS
- 2160 IF MRK(P) THEN L$=L$+ENC$(P):MRK(P)=0 ELSE L$=L$+ENO$(P):MRK(P)=-1'CONVERT
- 2165 NEXT:GOTO 2125
- 2170 'SUBROUTINE TO STRIP SOFT HYPHENS AND DOT COMMANDS
- 2175 P=INSTR(L$,SH$):IF P=0 OR P>=LEN(L$)-1 THEN 2180 ELSE L$=LEFT(L$,P-1)+ RIGHT$(L$,LEN(L$)-P):GOTO 2175 'STRIP SOFT HYPHENS...
- 2180 IF RIGHT$(L$,1)=SH$ THEN MID$(L$,LEN(L$),1)="-" 'EXCEPT AT EOL
- 2185 '
- 2190 IF STRIPDOT AND (LEFT$(L$,1)=".") THEN 2200 'POSSIBLE DOT COMMAND?
- 2195 PRINT #2,L$:PRINT PB$;:RETURN 'WRITE LINE TO DISK
- 2200 B$=MID$(L$,2,1):A=ASC(B$):IF A>64 AND A<91 THEN A=A+32:B$=CHR$(A)
- 2205 C$=MID$(L$,3,1):A=ASC(C$):IF A>64 AND A<91 THEN A=A+32:C$=CHR$(A)
- 2210 DUMP=0:FOR P=1 TO DT:IF B$+C$=D$(P) THEN DUMP=-1 'SEARCH FOR DOT CMDS.
- 2215 NEXT:IF DUMP THEN RETURN ELSE GOTO 2195 'DUMP LINE IF DOT COMMAND
- 2220 '
- 8000 'FILE SPECS
- 8005 INPUT"FILE TO CONVERT:", FL$:IF FL$="" THEN RETURN
- 8010 IF LEFT$(FL$,1)="?" THEN GOSUB 8035:GOTO 8005
- 8015 OPEN FL$ FOR INPUT AS #1
- 8020 INPUT "Convert to file:",FL$:IF FL$="" THEN 8005
- 8025 IF LEFT$(FL$,1)="?" THEN GOSUB 8035:GOTO 8020
- 8030 OPEN FL$ FOR OUTPUT AS #2:RETURN
- 8035 IF LEN(FL$)>1 THEN FL$=RIGHT$(FL$,LEN(FL$)-1) ELSE FL$="*.*"
- 8040 PRINT:FILES FL$:PRINT:RETURN
- 8045 CLOSE:BEEP:PRINT:PRINT"DONE!": GOTO 105
- 8050 '
- 9000 'ERROR TRAPPING
- 9005 IF ERL=8015 THEN CLOSE:BEEP:PRINT"===FILESPEC ERROR===":RESUME 8005
- 9010 IF ERL=8030 THEN CLOSE 2:BEEP:PRINT"===FILESPEC ERROR===":RESUME 8020
- 9015 IF ERL=8040 THEN CLOSE:BEEP:PRINT"===FILE(S) NOT FOUND===":RESUME 8005
- 9020 ON ERROR GOTO 0
- 9025 '
- 10000 DATA bp,uj,po,cw,ig,cp,fo,fm,he,hm,lh,mb,mt,pa,op,pn,pc,sr,pl
- 10005 DATA 19,"<<",">>"
- 10010 DATA 2,"<<<",">>>"
- 10015 DATA 22,"<",">"
- 10020 DATA 20, "<^","^>"